Sono d'accordo che il problema non è php ma la programmazione in generale, io intendo la LOGICA, e devi ragionare da programmatore.
Io sempre uso questo banale esempio:
La mamma dice a Pierino "vai al supermercato e compra un litro di latte litro di latte, se ci sono le uova portamene dodici".
La maggior parte porterebbe a casa il litro di latte e una dozzina di uova; I programmatori invece si portano a casa 12 litri di latte.
Stessa cosa per entrare a casa:
1) tira fuori le chiavi, 2) seleziona quella giusta, 3) inserisci nella toppa, 4) gira la chiave, 5) spingi la porta, 6) entra, 7) chiudi la porta.
Se non si hanno queste nozioni per me non si può programmare assolutamente.
Diciamo che mantengo i miei script abbastanza organizzati e facili da mantenere, eccone un esempio:
codice:
<?php
include("../functions/session_info.php");
include("../config.php");
include("../functions/security/staff.php");
$user_name = $_SESSION['user_name'];
$user_id = $_SESSION['user_id'];
$project_id = $_REQUEST['ProjectId'];
if($project_id > 0 && getUserProjectPermissions($user_id,$project_id) == 0){
$error_message = $lang['notassigned'];
include('error_tpl.php');
}
$result = mysql_query("SELECT * FROM fs_staff WHERE user_id='$user_id'",$con);
if(mysql_num_rows($result)>0)
{
$row = mysql_fetch_array($result, MYSQL_BOTH);
$staff_fname = $row['staff_fname'];
$staff_lname = $row['staff_lname'];
}
else
{
$msg = $lang['usernotfound'];
}
// Populate Project Data
$result = mysql_query("SELECT * FROM fs_projects WHERE project_id='$project_id'",$con);
$row = mysql_fetch_array($result, MYSQL_BOTH);
$project_title = $row['project_title'];
$project_client_id = $row['project_client_id'];
// Delete Record Function
if(isset($_REQUEST['DelTaskId']))
{
mysql_query("DELETE FROM fs_tasks WHERE task_id=".$_REQUEST["DelTaskId"],$con);
}
// Start Code for Table Display
$initStartLimit = 0;
$limitPerPage = 500;
$startLimit = $_REQUEST['startLimit'];
$numberOfRows = $_REQUEST['rows'];
$sortBy = "task_id";
$sortOrder = "";
if ($startLimit=="")
{
$startLimit = $initStartLimit;
}
if ($numberOfRows=="")
{
$numberOfRows = $limitPerPage;
}
if ($sortOrder=="")
{
$sortOrder = "DESC";
}
if ($sortOrder == "DESC") { $newSortOrder = "ASC"; } else { $newSortOrder = "DESC"; }
$limitQuery = " LIMIT ".$startLimit.",".$numberOfRows;
$nextStartLimit = $startLimit + $limitPerPage;
$previousStartLimit = $startLimit - $limitPerPage;
if ($sortBy!="")
{
$orderByQuery = " ORDER BY ".$sortBy." ".$sortOrder;
}
$sql = "SELECT * FROM fs_tasks WHERE task_project_id='$project_id'".$orderByQuery.$limitQuery;
$result = MYSQL_QUERY($sql);
$numberOfRows = MYSQL_NUM_ROWS($result);
?>
<? include("header.php"); ?>
<script language="javascript" type="text/javascript" src="../functions/ajaxmailer.js"></script>
<div id="darkbanner" class="banner350">
[img]../images/myaccount.png[/img]
<h2><? echo $lang['managetasks']; ?></h2>
</div>
<div id="darkbannerwrap">
</div>
<fieldset class="form">
<legend><? echo $lang['itemdetails']; ?></legend>
<label for="project_name"><? echo $lang['projectname']; ?>:</label>
<input name="project_name" type="text" id="project" value="<?php echo $project_title; ?>" disabled>
</p>
<label for="client_name"><? echo $lang['options']; ?>:</label>
[img]../images/pencilsmall.png[/img]<? echo $lang['modifyproject']; ?>
<P style="padding-left:160px;">[img]../images/add.png[/img]<? echo $lang['taskaddnew']; ?>
<P style="padding-left:160px;">[img]../images/add.png[/img]<? echo $lang['timebillrecord']; ?>
</p>
</fieldset>
<? if ($numberOfRows==0) { ?>
<P style="padding-left: 20px;"><? echo $lang['notasks']; ?></P>
<?
} else if ($numberOfRows>0) {
$i=0;
?>
<table>
<tr>
<th class="number"><? echo $lang['#']; ?></th>
<th><? echo $lang['tasktitle']; ?></th>
<th><? echo $lang['assignedto']; ?></th>
<th><? echo $lang['progress']; ?></th>
<th><? echo $lang['status']; ?></th>
<th><? echo $lang['action']; ?></th>
</tr>
<?
while ($i<$numberOfRows)
{
$task_id = MYSQL_RESULT($result,$i,"task_id");
$task_assignedto_id = MYSQL_RESULT($result,$i,"task_assignedto_id");
$task_due_date = MYSQL_RESULT($result,$i,"task_due_date");
$task_status = MYSQL_RESULT($result,$i,"task_status");
$task_progress = MYSQL_RESULT($result,$i,"task_progress");
$task_title = MYSQL_RESULT($result,$i,"task_title");
$sql2 = mysql_query('SELECT * FROM fs_staff WHERE user_id='.$task_assignedto_id);
while($row = mysql_fetch_array($sql2))
{
$staff_fname = $row['staff_fname'];
$staff_lname = $row['staff_lname'];
$staff_name = "$staff_fname $staff_lname";
}
?>
<tr>
<td class="number tdmidgreen greentext"><? echo $task_id; ?></td>
<td class="td340b"><? echo $task_title; ?><span><? echo $lang['view']; ?></span>
<td class="td150"><? echo $staff_name; ?></td>
<td class="td80"><? echo $task_progress; ?></td>
<td class="td120"><? echo $task_status; ?></td>
<td class="actions">
<a href="edittask.php?EditTaskId=<? echo $task_id; ?>">
[img]../images/pencil.png[/img]
</a>
<a href="viewtasks.php?ProjectId=<? echo $project_id; ?>&DelTaskId=<? echo $task_id; ?>">
[img]../images/delete.png[/img]
</a>
</td>
<?
$i++;
} // end while loop
} // end of if numberOfRows > 0
?>
</tr>
</table>
<? echo $SETTING_footer_staff; ?>
Comunque grazie per l'utilie e interessante tuo parere.