88871
Goto Top

PHP - Aufsteigende Zahlen an String hängen, wie ?

Also, ich finde einfach keine Lösung. Vielleicht hat hier ein php'ler eine Idee wie man das am besten lösen kann.

Ich generiere Zufallszahlen anhand einer eigenen Function. An diese Zufallszahl ist auch ein Name verknüpft.

An diesen $namen moechte ich nun bei jedem durchlaufen und schreiben, auch eine aufsteigende Zahl angeben.

z.b.

$name hat der User eingegeben: MEIER

Resultat am Schluss: MEIER_001, MEIER_002, etc....so lange wie der $i Zähler läuft.


        // $ammount wird per formular übergeben, z.b. 30  
       $ammount = $_POST['ammount'];          
        
        for($i = 0; $i < $ammount ; $i++)
        {
            // zufallscode mit buchstaben generieren
            $codegen = myfeckingcodegenfunctionlol(8); // hier hole ich mir eine zufallszahl
            
            $_POST[name]+1;  // <-------- Hier fehit die Lösung. Das hier funktioniert nicht
                 
          
            // schreiben der mysql_query 
            ............
            

Content-Key: 165911

Url: https://administrator.de/contentid/165911

Printed on: April 25, 2024 at 23:04 o'clock

Member: dog
dog May 09, 2011 at 13:46:01 (UTC)
Goto Top
$name = sprintf("%s_%03u",$name,$i);  
Mitglied: 88871
88871 May 09, 2011 at 14:14:22 (UTC)
Goto Top
Zitat von @dog:
> $name = sprintf("%s_%03u",$name,$i);  
> 

Heijas dog! Danke für Deinen Vorschlag. Hab die Zeile eingesetzt. Nun wird aber die Zahl an die Zahl gehängt und sieht dann so aus:

NAME_000_001
NAME_000_001_002
NAME_000_001_002_003
NAME_000_001_002_003_004
NAME_000_001_002_003_004_005


Hab die Zeile eingesetzt und die anfängliche Übergabe des POSTS in die Variable weggelassen.
      
        
        for($i = 0; $i < $_POST['ammount']; $i++)  
        {
            // zufallscode mit buchstaben generieren
            $codegen = myfeckingcodegenfunctionlol(8); // hier hole ich mir eine zufallszahl
            
            $name = sprintf("%s_%03u",$name,$i); // Hier braucht die Schleife eine Lösung für die aufsteigenden zahlen.  
                 
          
            // schreiben der mysql_query beginnt hier
            .....
            
Member: dog
dog May 09, 2011 at 15:46:07 (UTC)
Goto Top
Das war auch nur ein Beispiel.

Woher kommt der Name?
Woher kommt die Zählvariable (deren Grenzen)?
Was hat die Zusfallszahl damit zu tun?
Member: Arano
Arano May 09, 2011 at 15:46:31 (UTC)
Goto Top
Hallo

In PHP kannst du mit einem Punk "." verketten
PHP-Manual - echo

$_POST[name]+1;
Ist hier sogar doppelt falsch face-wink
  1. Wäre es nun eine einfache Rechnung also Variable x+1, was mit eine Zeichenkette (Name) schon mal doof ist und
  2. Hast du die Variable auch noch falsch geschrieben, richtig wäre "$_POST['name']" (name in Anführungszeichen weil name sonst als Konstante ausgewertete werden würde die nicht existiert)

Hilfreich wären folgende zwei Zeile an erster Stelle
<?php
  ini_set('display_errors','On');  
  ini_set('error_reporting',E_ALL|E_STRICT);  
?>

Deine Lösung sollte also ungefähr so aussehen:
  $name = $_POST['name'].'_'.$i;  


~Arano
Mitglied: 88871
88871 May 09, 2011 at 16:55:52 (UTC)
Goto Top
also es geht, nachdem ich die variable $name umbenannt habe, da ich sie mir sonst im jeden durchlauf mitkopiere face-smile


$namewhatever = sprintf("%s_%03u",$name,$i); 


also dogs loesung hat gefruchtet, tausend dank.

bin noch nicht ganz sesshaft in php, also doof und company sind hilfreich aber auf die falsche art und weise face-smile

merci, problem geloest.
Member: Guenni
Guenni May 09, 2011 at 22:42:12 (UTC)
Goto Top
Was soll eigentlich immer dieser Hinweis auf ini_set???

Diese Funktion fängt Syntaxfehler ab, aber bestimmt nicht unlogische Fehler.
Member: Arano
Arano May 10, 2011 at 15:21:50 (UTC)
Goto Top
Hallo Günni.

Ja stimmt, diese Einstellungen fangen "nur" Syntaxfehler ab bzw. veranlassen deren Anzeige - aber genau deswegen wies ich ja drauf hin.
Okay, das war nicht die Frage / das Problem welches Dark3zz probleme bereitete aber darauf hinweisen kann man doch trotzdem - muss ihn ja nicht beim Fehlermachen zusehen. Zusätzlich zeigt es ihm und allen anderen möglicherweise zukünftige Fehler / Probleme die nun selbständig entfernt / gelöst werden können.


~Arano
Mitglied: 88871
88871 May 10, 2011 at 16:16:53 (UTC)
Goto Top
ja danke arano. sehr hilfreich. ich benutze meistens den error reporting all, aber das nervt manchmal :1)
Member: dog
dog May 10, 2011 at 16:21:36 (UTC)
Goto Top
aber das nervt manchmal :1)

Ganz ehrlich: Dann machst du was falsch!
E_ALL ist dein bester Freund!
Ich habe das bei mir sogar so eingebunden, dass jede Art von Fehler zu einem soforting Abbruch führt, denn jeder Fehler setzt sich nach dem Schmetterlingseffekt fort.
Member: Arano
Arano May 10, 2011 at 18:23:09 (UTC)
Goto Top
Zitat von @dog:
> aber das nervt manchmal :1)

Ganz ehrlich: Dann machst du was falsch!
Das sehe ich allerdings genau so ! (so wie Dog)

Gut, ich lasse es nicht gleich abbrechen, aber selbst die Notizen sehe ich als Fehler an und beseitige sie entsprechend - eben des Schmetterlingseffektes wegen.

~Arano